]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
telepathyClient: update the avatar correctly when it changes
authorMarina Zhurakhinskaya <marinaz@redhat.com>
Wed, 21 Sep 2011 20:46:08 +0000 (16:46 -0400)
committerMarina Zhurakhinskaya <marinaz@redhat.com>
Thu, 22 Sep 2011 17:25:35 +0000 (13:25 -0400)
Previously, when the avatar changed, we would not update the summary icon
for the source at all and would only update the notification icon when the
next message was received. Instead, we should update both immediately upon
recieving the signal that the avatar has changed.

https://bugzilla.gnome.org/show_bug.cgi?id=659768

js/ui/messageTray.js
js/ui/telepathyClient.js

index ef0d593951f42ad6fed12c08cec8c700276fd8fc..d41fd7dc5300a4ccbbe00aa180d0803f23a54068 100644 (file)
@@ -416,6 +416,7 @@ Notification.prototype = {
 
     _init: function(source, title, banner, params) {
         this.source = source;
+        this.title = title;
         this.urgency = Urgency.NORMAL;
         this.resident = false;
         // 'transient' is a reserved keyword in JS, so we have to use an alternate variable name
@@ -538,6 +539,7 @@ Notification.prototype = {
                                       y_fill: false,
                                       y_align: St.Align.START });
 
+        this.title = title;
         title = title ? _fixMarkup(title.replace(/\n/g, ' '), params.titleMarkup) : '';
         this._titleLabel.clutter_text.set_markup('<b>' + title + '</b>');
 
index cf55b16c4548f0fa5ff02b52a54ffda27f27a445..4bd5097f4dc55e179d448683f010685447641ffc 100644 (file)
@@ -543,13 +543,6 @@ ChatSource.prototype = {
     createNotificationIcon: function() {
         this._iconBox = new St.Bin({ style_class: 'avatar-box' });
         this._iconBox._size = this.ICON_SIZE;
-
-        this._updateAvatarIcon();
-
-        return this._iconBox;
-    },
-
-    _updateAvatarIcon: function() {
         let textureCache = St.TextureCache.get_default();
         let file = this._contact.get_avatar_file();
 
@@ -561,6 +554,13 @@ ChatSource.prototype = {
                                                 icon_type: St.IconType.FULLCOLOR,
                                                 icon_size: this._iconBox._size });
         }
+
+        return this._iconBox;
+    },
+
+    _updateAvatarIcon: function() {
+        this._setSummaryIcon(this.createNotificationIcon());
+        this._notification.update(this._notification.title, null, { customContent: true, icon: this.createNotificationIcon() });
     },
 
     open: function(notification) {